/** StopWatch encapsulates calls to the performance timers
**
** @version: $Id: StopWatch.h 64 2010-11-25 20:46:39Z NeurobaticsTim@gmail.com $
*/
#pragma once



/******************************************************************************\
*                              Stopwatch class                                 *
\******************************************************************************/
class StopWatch
{
private:
	/*****************************************************\
	* Member variables                                    *
	\*****************************************************/
	double	dSecondsPerCount;	// conversion from counts to seconds
	__int64	i64Then;			// when was this called previously?

public:
	/*****************************************************\
	* Constructor                                         *
	\*****************************************************/
	StopWatch();

	/*****************************************************\
	* Destructor                                          *
	\*****************************************************/
	virtual ~StopWatch();

	/*****************************************************\
	* GetDeltaT: get elapsed time in decimal seconds      *
	\*****************************************************/
	double GetDeltaT();

	/*****************************************************\
	* Reset and restarts the timer                        *
	\*****************************************************/
	void Reset();
};
